package com.netdisk.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.netdisk.dto.FileDTO;
import com.netdisk.entity.Trash;
import com.netdisk.vo.PageResult;

/**
 * 回收站服务接口
 */
public interface TrashService extends IService<Trash> {

    /**
     * 获取回收站文件列表
     *
     * @param userId 用户ID
     * @param page 页码
     * @param pageSize 每页大小
     * @param query 搜索关键词
     * @return 分页结果
     */
    PageResult<FileDTO> listTrashFiles(Integer userId, Integer page, Integer pageSize, String query);

    /**
     * 获取回收站中的文件信息
     *
     * @param fileId 文件ID
     * @param userId 用户ID
     * @return 文件信息
     */
    FileDTO getTrashFileInfo(Integer fileId, Integer userId);

    /**
     * 恢复文件
     *
     * @param fileId 文件ID
     * @param userId 用户ID
     * @return 是否恢复成功
     */
    boolean restoreFile(Integer fileId, Integer userId);

    /**
     * 彻底删除文件
     *
     * @param fileId 文件ID
     * @param userId 用户ID
     * @return 是否删除成功
     */
    boolean deleteFileCompletely(Integer fileId, Integer userId);

    /**
     * 清空回收站
     *
     * @param userId 用户ID
     * @return 是否清空成功
     */
    boolean clearTrash(Integer userId);
} 